package com.xiefengf.rabbitmq.consumer.service;

import com.xiefengf.rabbitmq.consumer.utils.StringUtils;
import org.springframework.amqp.core.ExchangeTypes;
import org.springframework.amqp.rabbit.annotation.*;
import org.springframework.messaging.handler.annotation.Payload;
import org.springframework.stereotype.Service;

/**
 * @author xiefengf
 * @version 1.0
 * @date 2024/1/10 23:58
 *
 */

@Service
public class TopicConsumerService {

    /**
     * @RabbitHandler 代表此方法是一个消息接收的方法。该不要有返回值
     * @RabbitListener 可作用于类上，即是整个类被监听，作用于方法上，此方法监听
     * @param msg
     */
    @RabbitListener(queues = {StringUtils.TOPIC_QUEUE_NAME_1})
    @RabbitHandler
    public void weixinService(@Payload String msg){
        // 此处省略发邮件的逻辑
        System.out.println("weixin-----topic--------->" + msg);
    }


    /**
     * @RabbitHandler 代表此方法是一个消息接收的方法。该不要有返回值
     * @RabbitListener 可作用于类上，即是整个类被监听，作用于方法上，此方法监听
     * @param msg
     */
    @RabbitListener(queues = {StringUtils.TOPIC_QUEUE_NAME_2})
    @RabbitHandler
    public void smsService(@Payload String msg){
        // 此处省略发邮件的逻辑
        System.out.println("sms-----topic--------->" + msg);
    }


    /**
     * @RabbitHandler 代表此方法是一个消息接收的方法。该不要有返回值
     * @RabbitListener 可作用于类上，即是整个类被监听，作用于方法上，此方法监听
     * @param msg
     */
    @RabbitListener(queues = {StringUtils.TOPIC_QUEUE_NAME_3})
    @RabbitHandler
    public void emailService(@Payload String msg){
        // 此处省略发邮件的逻辑
        System.out.println("email-----topic--------->" + msg);
    }



}
